home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGNG_C / CUG187.LZH / YYMMDD.C < prev    next >
C/C++ Source or Header  |  1986-01-10  |  2KB  |  90 lines

  1. /*@*****************************************************/
  2. /*@                                                    */
  3. /*@ yymmdd - convert a date in standard form to a      */
  4. /*@        normalized date in YY-MM-DD form.  One      */
  5. /*@        digit values are prefixed with a zero.      */
  6. /*@        The separator is given by the user.         */
  7. /*@                                                    */
  8. /*@   Usage:     yymmdd(std_date, sep);                */
  9. /*@       where std_date is a string containing a date */
  10. /*@                  in std MM-DD-YY form.             */
  11. /*@             sep is the separator for output.       */
  12. /*@                                                    */
  13. /*@   Returns 0 if no errors, 1 otherwise.             */
  14. /*@                                                    */
  15. /*@*****************************************************/
  16.  
  17. #define NULL 0x00
  18.  
  19. int yymmdd(datein, c)
  20. char *datein, c;
  21. {
  22.     char yy[3], mm[3], dd[3];
  23.     int i;
  24.  
  25.     i = 0;
  26.  
  27.     if (isdigit(datein[i]) && isdigit(datein[i+1])) {
  28.         mm[0] = datein[i];
  29.         mm[1] = datein[i+1];
  30.         mm[2] = NULL;
  31.         i += 3;
  32.     }
  33.     else if (isdigit(datein[i])) {    /* single digit given */
  34.         mm[0] = '0';
  35.         mm[1] = datein[i];
  36.         mm[2] = NULL;
  37.         i += 2;
  38.     }
  39.     else if (datein[i] == ' ') {    /* 1st digit a space */
  40.         mm[0] = '0';
  41.         mm[1] = datein[i+1];
  42.         mm[2] = NULL;
  43.         i += 3;
  44.     }
  45.     else
  46.         return 1;        /* error */
  47.  
  48.     if (isdigit(datein[i]) && isdigit(datein[i+1])) {
  49.         dd[0] = datein[i];
  50.         dd[1] = datein[i+1];
  51.         dd[2] = NULL;
  52.         i += 3;
  53.     }
  54.     else if (isdigit(datein[i])) {    /* single digit given */
  55.         dd[0] = '0';
  56.         dd[1] = datein[i];
  57.         dd[2] = NULL;
  58.         i += 2;
  59.     }
  60.     else
  61.         return 1;        /* error */
  62.  
  63.     if (isdigit(datein[i]) && isdigit(datein[i+1])) {
  64.         yy[0] = datein[i];
  65.         yy[1] = datein[i+1];
  66.         yy[2] = NULL;
  67.         i += 3;
  68.     }
  69.     else if (isdigit(datein[i])) {    /* single digit given */
  70.         yy[0] = '0';
  71.         yy[1] = datein[i];
  72.         yy[2] = NULL;
  73.         i += 2;
  74.     }
  75.     else
  76.         return 1;        /* error */
  77.     
  78.     datein[0] = yy[0];
  79.     datein[1] = yy[1];
  80.     datein[2] = c;   
  81.     datein[3] = mm[0];
  82.     datein[4] = mm[1];
  83.     datein[5] = c;    
  84.     datein[6] = dd[0];
  85.     datein[7] = dd[1];
  86.  
  87.     return 0;
  88. }
  89.  
  90.